Triplos Pitagóricos
Uma exploração dos triplos pitagóricos, repleta de exemplos desses números misteriosos e gráficos de centenas destes triplos!
[Direções : Execute primeiramente a seção Code Resource. Embora não haja nenhum output imediato, essas definições serão usadas posteriormente em outro .]
0. Código
| > | restart; with(plots): |
Warning, the name changecoords has been redefined
| > | SumSquares := proc(n) local A,i,j,k; A := array( [seq( [ seq(` `, j = 1..(n+2) ) ], i = 1..(n+2)) ]); A[1,1] := `Sum Squares` ; for k from 1 to n do A[1,k+2 ] := k; od; for k from 1 to n do A[k+2, 1] := k; od; for k from 1 to n do A[2, k+2] := `__`; od; for k from 1 to n do A[k+2, 2] := `|`; od; for i from 1 to n do for j from 1 to n do A[i+2,j+2] := i^2 + j^2 ; od;od; print(A); end proc: |
| > | SumSquares2 := proc(n) local A,i,j,k; A := array( [seq( [ seq(` `, j = 1..(n) ) ], i = 1..(n)) ]); for i from 1 to n do for j from 1 to i do A[i,j] := i^2 + j^2 ; od;od; print(A); end proc: |
| > | PythTripTable := proc(m) local A,i,j,k,n; n := m - 2; A := array( [seq( [ seq(` `, j = 1..(n+2) ) ], i = 1..(n+2)) ]); A[1,1] := `triples`; A[2,1] := `p`; A[1,2] := `q`; for k from 1 to n do A[1,k+2] := k+2; od; for k from 1 to n do A[k+2, 1] := k+2; od; for k from 1 to n do A[2,k+2] := `__`; od; for k from 1 to n do A[k+2, 2] := `|`; od; for i from 3 to n+2 do for j from 3 to n+2 do if (j>i) then A[i,j] := [j^2-i^2,2*i*j,j^2+i^2] ; fi; od;od; print(A); end proc: |
| > | PythTrips := proc(n) local i,j,k; print(` Pythagorean Triples :\n`); for j from 3 to n do for i from 3 to j-1 do print([j^2-i^2,2*i*j,j^2+i^2] ); od;od; end proc: |
| > | PythTrips := proc(n) local i,j,A,B,g; print(`Some Pythagorean Triples :`);print(` `); for j from 3 to n do for i from 3 to j-1 do A := [j^2-i^2,2*i*j,j^2+i^2]; g := igcd(A[1],A[2],A[3]); B := A/g; if( g =1) then print(A,` Primitive Triple)(` ); else print(A,` a multiple of `, B ); fi; od;od; end proc: |
| > | PythTripPlot := proc(n) local i,j,k,Q,m,q,c; print(`Some Pythagorean Triples :`);print(` `); k:= 0; for j from 2 to n do for i from 1 to j-1 do k := k+1; q := [ j^2-i^2, 2*i*j]; c := COLOR(RGB, evalf(rand()/10^12,2)/3 + .3, evalf(rand()/10^12,2)/3 + .3, .8 ); Q||k := plot( [[0,0],[q[1],0],[q[1],q[2]],[0,0]], color = c, axes = none): od;od; display( [seq(Q||j, j = 1..k)], scaling=constrained); end proc: |
| > | PythPointPlot := proc(n) local i,j,k,Q,m,q,c; print(`Pythagorean Triple Vertices :`);print(` `); k:= 0; Q||k := pointplot([0,0], color = white, axes = boxed): for j from 2 to n do for i from 1 to j-1 do k := k+1; q := [ j^2-i^2, 2*i*j]; c := COLOR(RGB, evalf(rand()/10^12,2)/3 + .2, evalf(rand()/10^12,2)/3 + .1, .8 ); Q||k := pointplot([q[1],q[2]], color = c, axes = boxed): od;od; display( [seq(Q||j, j = 0..k)], scaling=constrained); end proc: |
| > | PythPrimPointPlot := proc(n) local i,j,k,Q,m,q,c,g; print(`Primitive Pythagorean Triple Vertices :`);print(` `); k:= 0; Q||k := pointplot([0,0], color = white, axes = boxed): for j from 2 to n do for i from 1 to j-1 do q := [ j^2-i^2, 2*i*j]; g := igcd(q[1],q[2]); if( g=1)then k := k+1; c := COLOR(RGB, .7, evalf(rand()/10^12,2)/3 + .1, evalf(rand()/10^12,2)/3 + .1 ); Q||k := pointplot([q[1],q[2]], color = c, axes = boxed, symbol = circle): fi; od;od; display( [seq(Q||j, j = 0..k)], scaling=constrained); end proc: |
1. Triplos Pitagóricos
Esse é o famoso teorema de Pitágoras
\
| > | Pyth := a^2 + b^2 = c^2; |
Tipicamente, se os dois catetos são inteiros, a hipotenusa é uma raíz quadrada.
| > | subs( {a=1, b=2}, Pyth); solve(%,c); |
| > | subs( {a=1, b=1}, Pyth); solve(%,c); |
| > | subs( {a=1, b=2}, Pyth); solve(%,c); |
| > | subs( {a=2, b=3}, Pyth); solve(%,c); |
| > | subs( {a=4, b=6}, Pyth); solve(%,c); |
No entanto, existem vários casos onde todos os três números são inteiros. Nós chamamos trádes desse tipo de Triplos Pitagóricos
.Existe um número infinito deles.
| > | subs( {a=3, b=4}, Pyth); solve(%,c); |
| > | subs( {a=5, b=12}, Pyth); solve(%,c); |
| > | subs( {a=7, b=24}, Pyth); solve(%,c); |
| > | subs( {a=8, b=15}, Pyth); solve(%,c); |
| > | subs( {a=8, b=15}, Pyth); solve(%,c); |
O mistério eão é como encontrar esses trigêmeos mágicos e quantos eles são
2. Encontrando Triplos Pitagóricos
Nós podemos olhar para uma soma de quadrados - e ver se nós reconhecemos qualquer quadrado perfeito. Por exemplo, nessa tabela, existem dois intervalos de 25. Se você traçá-los novamente na coluna e na fileira eles são (3,4) e (4,3). Cada quadrado perfeito nessa tabela corresponde a um triplo pitagórico.
| > | SumSquares(6); |
Quantos quadrados perfeitos você contou aqui? Procure por 25, 100, 225
| > | SumSquares(13); |
Quantos mais você pode encontrar aqui? Dica : 289, 400
| > | SumSquares2(17); |
Como você pode ver existem poucos casos. De fato, existe um número infinito de triplos pitagóricos. Aqui um pouco mais. Por favor teste estes e verifique se eles são triplos.
| > | PythTripTable(9); |
Um "Triplo Pitagórico Primitivo" é um onde todos os três números são relativamente primos. É fácil gerar um número infinito
| > | `Primitive Pythagorean Triple`; [5, 12, 13]; igcd( 9, 40, 41); |
| > | `Primitive Pythagorean Triple`; [9, 40, 41]; igcd( 9, 40, 41); |
| > | `Primitive Pythagorean Triple`; [111, 680, 689]; igcd( 111, 680, 689); 111^2 + 680^2 = 689^2; |
| > | `Non-primitive Pythagorean Triple`; [21, 28, 35]; igcd( 21, 28, 35); |
| > | `Non-primitive Pythagorean Triple`; [15, 36, 39]; igcd( 15, 36, 39 ); |
| > | `Non-primitive Pythagorean Triple`; [112, 66, 130]; igcd(112, 66, 130); |
| > | `Non-primitive Pythagorean Triple`; [136, 255, 289]; igcd(136, 255, 289 ); |
Aqui está um pouco mais - observe quais são primitivos e quais não são
| > | PythTrips(20); |
3. Triplos Pitagóricos Pares & Ímpares
[Seção opcional - Essa é um pouco mais avançada.]
Qualquer a, b, e c podem ser números pares ou ímpares? Vamos ver isso.
| > | Pyth; |
1. Podem todos três : a, b, e c serem ímpares?
2. Podem a e b serem ímpares, mas a par?
3. Podem a e c serem ímpares, mas b par?
4. Podem a e b serem pares, mas a ímpar?
5. Podem a e c serem pares, mas b ímpar?
6. Podem todos três : a, b, e c, serem pares?
Para analisar isso, vamos colocar algumas expressões para inteiros pares e ímpares. Nós veremos que vários dos termos ampliados tem fatores de 4. Se nós reduzirmos mod 4 - isto é dividir ambos os lados por 4 e procurarmos apenas no resto, veremos que a maioria, mas não todas as questões não são verdade.
| > | odd1 := 2*i + 1; odd2 := 2*j + 1; odd3 := 2*k + 1; even1 := 2*l ; even2 := 2*n; even3 := 2*m; |
.......
1. Podem todos três: a, b, e c serem ímpares?
............................................
| > |
| > | subs({a=odd1,b=odd2,c=odd3}, Pyth); expand(%); % mod 4; |
não.
.......
2. Podem a e b serem ímpares, mas a par?
............................................
| > | subs({a=odd1,b=odd2,c=even1}, Pyth); expand(%); % mod 4; |
não
......
3. Podem a e c serem ímpares, mas b par?
............................................
| > | subs({a=odd1,b=even2,c=odd3}, Pyth); expand(%); % mod 4; |
sim!
.......
4. Podem a e b serem pares, mas c ímpar?
............................................
| > | subs({a=even1,b=even2,c=odd1}, Pyth); expand(%); % mod 4; |
não.
.......
5. Podem a e c serem pares, mas b ímpar?
............................................
| > | subs({a=even1,b=odd2,c=even3}, Pyth); expand(%); % mod 4; |
não.
.......
5. Podem a, b e c todos serem pares?
............................................
| > | subs({a=even1,b=even2,c=even3}, Pyth); expand(%); % mod 4; |
sim!
A menos que todos sejam pares, este deve ser o caso que um cateto é par e outro é ímpar, e a hipotenusa é ímpar. Se todos os três números são pares - nesse caso nós podemos dividir cada número por dois.
4. Gráficos de Triplos Pitagóricos
Como iria ser se nós desenhássemos um diagrama de todos os triângulos triplos pitagóricos até um certo tamanho no mesmo gráfico? Existiria uma razão para isso?
| > | PythTripPlot(4); |
Você pode distinguir triplos primitivos de triplos não primitivos? Esse gráfico elimina as duplicatas, por exemplo, apenas um de (3,4,5) e (4,3,5) é plotado.
| > | PythTripPlot(8); |
| > | PythTripPlot(12); |
É interessante que esses triângulos pareçam algo uniformemente distribuido, não é? Esse diagrama fica crescentemente desordenadoporque nós desenhamos muitos triângulos. Se nós apenas desenhássemos os vértices superiores (a,b) do triângulo retângulo com lados a, b, e c (para triângulos retângulos de triplos pitagóricos), com o que isso irá parecer? Existirá algum padrão?
| > | PythPointPlot(12); |
| > | PythPointPlot(20); |
| > | PythPointPlot(40); |
| > | PythPointPlot(50); |
Esses plots incluem triplos primitivos e não primitivos. E se nós limitássesmos o diagrama para triplos primitivos?
| > | PythPrimPointPlot(12); |
| > | PythPrimPointPlot(36); |
| > | PythPrimPointPlot(50); |
| > |